<?php 
/*
说明 : 该页面是用来实现验证码的
生成的验证码保存在 $_SESSION['vverify'] 中
*/
//使用session
session_start();
error_reporting(0);

// 创建画布
$img=imagecreatetruecolor(150,52);

//准备颜色
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,13,211,31);
$blue=imagecolorallocate($img,0,0,255);
// 棕色
$brown=imagecolorallocate($img,39,40,34);
$black=imagecolorallocate($img,0,0,0);
$gray=imagecolorallocate($img,220,220,220);
$world=imagecolorallocate($img,30,270,24);
$purple=imagecolorallocate($img,162,8,232);
$pink=imagecolorallocate($img,229,18,98);

// 在画布上画图像和文字
imagefill($img,0,0,$gray);

// 获得字符串
// |-混合数组
// $arry=array_merge(range(0,9),range(a,z),range(A,Z));
$arry=array_merge(range(0,9));
// |-打乱数组
shuffle($arry);
// |-合并数组
$str=join($arry);          
// |-截取字符串
$str1=mb_substr($str,0,1);
$str2=mb_substr($str,1,1);
$str3=mb_substr($str,2,1);
$str4=mb_substr($str,3,1);

// |-传值
$str=$str1.$str2.$str3.$str4;
$strr=strtolower($str);

$_SESSION['vverify']=$strr;

// |-随机一个角度
$angle1=mt_rand(-45,45);
$angle2=mt_rand(-45,45);
$angle3=mt_rand(-45,45);
$angle4=mt_rand(-45,45);

// |-颜色随机 字符串分割成数组 
$arr=explode('/','red/blue/brown/black/world/purple');
shuffle($arr);

// |-输出字符串
imagettftext($img,20,$angle1,20,35,${$arr[0]},__DIR__.'/HoboStd.otf',$str1);
imagettftext($img,20,$angle2,50,35,${$arr[1]},__DIR__.'/HoboStd.otf',$str2);
imagettftext($img,20,$angle3,80,35,${$arr[2]},__DIR__.'/HoboStd.otf',$str3);
imagettftext($img,20,$angle4,110,35,${$arr[3]},__DIR__.'/HoboStd.otf',$str4);
// imagettftext($img,20,$angle1,20,35,${$arr[0]},'HoboStd.otf',$str1);
// imagettftext($img,20,$angle2,50,35,${$arr[1]},'HoboStd.otf',$str2);
// imagettftext($img,20,$angle3,80,35,${$arr[2]},'HoboStd.otf',$str3);
// imagettftext($img,20,$angle4,110,35,${$arr[3]},'HoboStd.otf',$str4);

// |-干扰素
for($i=0;$i<500;$i++){
	imagesetpixel($img,mt_rand(0,150),mt_rand(0,50),$black);
}
imagearc($img,mt_rand(40,110),mt_rand(15,35),mt_rand(40,110),mt_rand(15,35),0,180,${$arr[5]});
imagearc($img,mt_rand(40,110),mt_rand(15,35),mt_rand(40,110),mt_rand(15,35),0,180,${$arr[4]});

	
// 输出画布
header('content-type:image/png');
imagepng($img);

// 释放画布
imagedestroy($img);
 ?>